const { contextBridge, ipcRenderer } = require('electron')
console.log(process)

console.log(process.versions.electron)
contextBridge.exposeInMainWorld('API', {
  node: () => process.versions.node,
  chrome: () => process.versions.chrome,
  electron: () => process.versions.electron,
  ping: () => ipcRenderer.invoke('ping'),
  saveFile:(data)=>{
    // 要将单向 IPC 消息从渲染器进程发送到主进程，
    // 您可以使用 ipcRenderer.send API 发送消息，
    // 然后使用 ipcMain.on API 接收。
    ipcRenderer.send('saveFile',data)
  },
  // 双向 IPC 的一个常见应用是从渲染器进程代码调用主进程模块并等待结果。 
  // 这可以通过将 ipcRenderer.invoke 与 ipcMain.handle 搭配使用来完成。
  readFile:()=>{
    return ipcRenderer.invoke('readFile')
  },
  setTitle: (title) => ipcRenderer.send('set-title', title),
  openFile: () => ipcRenderer.invoke('dialog:openFile'),
  onUpdateCounter: (callback) => ipcRenderer.on('update-counter', (_event, value) => callback(value)),
  counterValue: (value) => ipcRenderer.send('counter-value', value),
  toggle: () => ipcRenderer.invoke('dark-mode:toggle'),
  system: () => ipcRenderer.invoke('dark-mode:system')

  // 除函数之外，我们也可以暴露变量
})